// 1. 引入内置http模块（发起POST请求）
const http = require('http');

// 2. 从命令行获取用户名和密码（process.argv是命令行参数数组，前两项是node和文件名）
const username = process.argv[2]; // 第3个参数：用户名（如node clientPost.js zhangsan 12354中的zhangsan）
const password = process.argv[3]; // 第4个参数：密码

// 3. 检查命令行参数是否完整
if (!username || !password) {
  console.error('请传入用户名和密码！用法：node clientPost.js <username> <password>');
  process.exit(1); // 退出程序（状态码1表示错误）
}

// 4. 配置POST请求选项（目标服务：localhost:8081）
const options = {
  hostname: 'localhost',
  port: 8081,
  path: '/',
  method: 'POST',
  headers: {
    'Content-Type': 'application/json; charset=utf-8' // 告诉服务端，发送的是JSON格式
  }
};

// 5. 发起POST请求
const req = http.request(options, (res) => {
  let responseData = ''; // 存储服务端返回的响应数据

  // 收集响应数据流
  res.on('data', (chunk) => {
    responseData += chunk;
  });

  // 响应数据收集完成，打印结果
  res.on('end', () => {
    const result = JSON.parse(responseData); // 解析服务端返回的JSON
    console.log('服务端响应：', result.message);
  });
});

// 6. 处理请求错误（如服务端未启动）
req.on('error', (error) => {
  console.error('请求失败：', error.message);
});

// 7. 发送POST数据（将用户名和密码转为JSON字符串）
req.write(JSON.stringify({ username, password }));
req.end(); // 结束请求（必须调用，否则服务端会一直等待）